This invention relates to a resource management technology for managing pooled computer resources. In particular, this invention relates to a resource allocation technology for allocating resources matching user's requirements from the pooled computer resources.
There have been known resource management technologies for pooling and operating computer resources. The computer resources include, for example, a CPU, a memory, and a hard disk drive included in a computer. In general, one physical computer is controlled to execute a plurality of virtual machines (VMs), and each of the virtual machines uses a part of computer resources of the physical computer. The computer resources are allocated depending on the execution of the virtual machines. For example, when the CPU includes four cores, one core is allocated to a virtual machine. At this time, the remaining three cores are managed as a computer pool until the other virtual machines are executed. The computer resources are managed by virtualization software for implementing the virtual machines. The virtualization software pools and manages the computer resources, and allocates the resources as needed when the virtual machines are executed. The user of the computer resources has a necessary amount of resources allocated from the pooled resources when needed, and when finished using the allocated resources, returns the computer resources that have been used to the computer pool. In this manner, when the computer resources are pooled, reusability of the computer resources may be increased, and use efficiency of the computer resources may be improved.
Among other the resource management technologies, pooled operation of physical computers has been widespread. The pooled operation of the physical computers is based on computer virtualization technologies. A resource provider prepares a large number of physical computers including computer virtualization software. Those physical computers constitute a computer pool. A user of the computer pool generates a virtual machine (VM) having necessary specifications in the computer pool. When the virtual machine is generated, the physical computer resources included in the computer pool are allocated to the virtual machine. When finished using the virtual machine, the user deletes the virtual machine from the physical computers. When the virtual machine is deleted, the computer resources that have been allocated to the virtual machine are returned to the computer pool.
The generation of the virtual machine is performed in the following order: deployment of the virtual machine; and activation of the virtual machine. The “deployment of the virtual machine” refers to copying an execution image of the virtual machine, which is stored in advance in a storage device (permanent storage device such as a hard disk drive), to a storage device of the physical computer on which the virtual machine operates. The “activation of the virtual machine” refers to activating, by the virtualization software, the virtual machine from the execution image of the virtual machine.
The activation of the virtual machine is generally complete in about several minutes. On the other hand, the deployment of the virtual machine generally takes about several ten minutes to several hours to complete because the processing of copying the execution image of the virtual machine takes time. A user who needs a large number of virtual machines needs to wait for a long time until the deployment of all virtual machines is complete. Therefore, there is a need to reduce the time it takes to deploy the virtual machines, and to improve the convenience of the user.
Moreover, when the execution image of the virtual machine is copied, CPUs and memories of both the source computer and the destination computer are significantly consumed. In the same manner, a network bandwidth between the computers is also significantly consumed. Therefore, there is a need to avoid copying execution images of a large number of virtual machines at once.
As related arts for reducing the time it takes to deploy the virtual machines, the following documents have been known. It should be noted that the following related arts include a technology for reducing the deployment time for the physical computers, but the technology is also applicable to the reduction of the deployment time for the virtual machines.
JP 2006-18561 A discloses optimizing the configuration of the system resource to be provided next according to the system resource provided as the hosting environment and the contents of the resource allocation request from the client.
JP 2007-114983 A discloses that the information system has the function of dynamically dividing the standby computers into the groups according to the difference between the software structure of the standby computers and the software structure required by the business system, and that in making the computer available, the standby computers grouped by the software structure are retrieved and extracted to complete the construction of the software environment quickly.
The specifications of the virtual machines required by the user are not always the same. Therefore, it is a problem to deploy the virtual machines matching the specifications required by the user as early as possible.
In the invention described in JP 2006-18561 A, a future request amount to the resources is predicted based on the analysis of the history of the resource request made by the user so that the deficiency and excess in resource amount are adjusted in advance. However, in the technology described in JP 2006-18561 A, the virtual machine is deployed only after the request is made, and no preparation is made in advance for deploying the virtual machine.
The invention described in JP 2007-114983 A discloses classifying the standby computers into groups by their software structures and retrieving the grouped standby computers to quickly construct the required software structure. In the technology described in JP 2007-114983 A, the standby computers including the software are prepared in advance to speed up the configuration of the software. However, the resource amounts required in further executing the individual applications are not adjusted.
As described above, it is a problem to deploy the specifications of the virtual machine required by the user, in particular, the resources required for the virtual machine quickly.
The representative one of inventions disclosed in this application is outlined as follows. There is provided a resource management server coupled to a plurality of physical computers via a network, for allocating a plurality of virtual machines by using resources included in the plurality of physical computers, the resource management server including: a resource management module for managing resource management information including a correspondence relationship between virtual machines for deployment implemented in the plurality of physical computers and use amounts of resources used by the virtual machines for deployment; a pool management module for managing pool management information including a correspondence relationship among the plurality of physical computers, a total amount of the resources included in the plurality of physical computers, and a total amount of available resources which are included in the plurality of physical computers and not allocated to the virtual machines; a requirement specification reception module for receiving an allocation requirement for a new virtual machine along with requirement specifications including amounts of resources required by the virtual machine that is newly required to be allocated; and a search module for searching for virtual machines that allow the amounts of resources included in the received requirement specifications to be allocated. The search module searches the virtual machines for deployment included in the resource management information for virtual machines for deployment having amounts of resources that satisfy the requirement specifications, and for virtual machines for deployment which do not have the amounts of resources that satisfy the requirement specifications but which allow the amounts of resources that satisfy the requirement specifications to be secured by adding the available resources included in the pool management information.
According to the representative embodiment of this invention, the use start time for the virtual machine corresponding to the specifications required by the user may be reduced.